home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / BASIC / ACD.BAS < prev    next >
BASIC Source File  |  2000-09-26  |  2KB  |  97 lines

  1. $INCLUDE "REGNAMES.INC"
  2. COLOR 14
  3.  
  4. IF CheckVector(&H49)=0 THEN
  5.  SOUND 2000,2
  6.  PRINT "FEHLER: ATUtilities File Transfer ist nicht installiert!"
  7.  GOTO ende
  8. END IF
  9. GOSUB CmdAuswertung
  10.  
  11. REG %AX,(&H6*256)
  12. CALL INTERRUPT &H49
  13. segment=REG(%ES)
  14. offset=REG(%DI)
  15.  
  16. DEF SEG = segment
  17.  
  18. IF anzeigen=0 THEN
  19.  a$=a$+CHR$(0)
  20.  FOR i=1 TO LEN(a$)
  21.   POKE offset+i-1,ASC(MID$(a$,i,1))
  22.  NEXT
  23.  REG %AX,(16*256)
  24.  CALL INTERRUPT &H49
  25.  IF REG(%BX)<>10000 THEN
  26.   SOUND 2000,2
  27.   PRINT "Verzeichnis ";a$;"ist nicht vorhanden/Zugriff verweigert."
  28.   GOTO ende
  29.  END IF
  30. END IF
  31.  
  32. POKE offset,0
  33. REG %AX,(12*256)
  34. CALL INTERRUPT &H49
  35. IF REG(%BX)=10000 THEN
  36.  fl=REG(%CX)
  37.  REG %BX,fl
  38.  REG %AX,(14*256)
  39.  CALL INTERRUPT &H49
  40.  COLOR 11
  41.  PRINT "Aktuelles Verzeichnis: ";
  42.  COLOR 14
  43.  i=PEEK(offset) : j=1
  44.  WHILE i<>0
  45.   PRINT CHR$(i);
  46.   i=PEEK(offset+j)
  47.   j=j+1
  48.  WEND
  49.  PRINT ""
  50.  REG %BX,fl
  51.  REG %AX,(13*256)
  52.  CALL INTERRUPT &H49
  53. END IF
  54.  
  55. ende:
  56. COLOR 7
  57. END
  58.  
  59. CmdAuswertung:
  60. cmd$=COMMAND$
  61. a$=cmd$
  62. IF a$="/?" OR a$="?" THEN
  63.  GOTO argf
  64.  anzeigen=0
  65. END IF
  66. IF a$="" THEN
  67.  a$=STRING$(20,CHR$(0))
  68.  anzeigen=1
  69. END IF
  70. RETURN
  71.  
  72. argf:
  73. SOUND 2000,2
  74. PRINT "ACD - Version 1.0  Copyright (C) 1993 by Thomas Dreibholz"
  75. PRINT ""
  76. PRINT "ACD setzt das aktuelle Amiga-Verzeichnis (CD-Befehl). Wird bei den"
  77. PRINT "Befehlen Amiga-Befehlen kein Verzeichnis angegeben, so wird das mit"
  78. PRINT "ACD angegebene benutzt."
  79. PRINT ""
  80. PRINT "Aufruf: ACD {Amiga-Verzeichnis | ? | /?}"
  81. PRINT ""
  82. GOTO ende
  83.  
  84.  
  85. FUNCTION CheckVector(num) STATIC
  86.  REG %AX,(&H35*256)+num
  87.  CALL INTERRUPT &H21
  88.  segm=REG(%ES)
  89.  offs=REG(%BX)
  90.  DEF SEG = segm
  91.  IF (segm=0) OR (PEEK(offs)=207) THEN
  92.   CheckVector=0
  93.  ELSE
  94.   CheckVector=1
  95.  END IF
  96. END FUNCTION
  97.